As communications over public networks evolve, secure data communications between different computing devices have become increasingly important. Without security, any interloper can obtain access to data being transmitted. With security, however, the data can be protected from unauthorized access. In order to accomplish secure data communications, various encryption/decryption functions have been developed.
In general, there are two common types of encryption/decryption schemes. The first scheme involves symmetric cryptography while the second scheme involves asymmetric cryptography. For asymmetric cryptography, a key pair is utilized in which one key is used for encryption and the other key is used for decryption. However, computations involving asymmetric cryptographic algorithms are complex, which contributes to greater processing time and slower overall system performance. In contrast, symmetric cryptographic ciphers (referred to as “ciphers”) utilize a single key for encryption and decryption operations. As a result, ciphers generally perform computations (e.g., encryption or decryption) faster than asymmetric cryptographic functions.
Normally, there are two types of ciphers, namely a stream cipher and a block cipher. One form of stream cipher, named “RC4,” was developed by RSA Data Security, Inc. of Bedford, Mass. However, RC4 and other conventional stream ciphers suffer from a number of disadvantages. For example, RC4 is vulnerable to an attack if a portion of the plain text (original data) and its corresponding cipher text are known. The reason is that a pseudo-random data stream produced by a RC4 cryptographic engine is exclusively OR'ed with the plain text in order to produce the cipher text. Thus, the existence of an identifiable correlation between plain text and cipher text exposes the data produced from the stream cipher to cryptographic attack.
Another disadvantage is that the initial byte of the pseudo-random data stream generated by RC4 is correlated to bytes of the key. In effect, this correlation also exposes the data produced by RC4 to cryptographic attack.
Thus, it would be desirous to develop a cipher that overcomes these and other disadvantages associated with RC4 and other stream ciphers.